#include <stdio.h>
#include <limits.h>
#include <float.h>

// 预设的变量
#define UserName '\n'
#define UserAge 100

// extern 存储类
int s_count;
extern void write_extern();

/* 函数声明 */
void func1(void);

static int count = 10; /* 全局变量 - static 是默认的 */

void func1(void)
{
  /* 'thingy' 是 'func1' 的局部变量 - 只初始化一次
 * 每次调用函数 'func1' 'thingy' 值不会被重置。
 */
  static int thingy = 5;
  thingy++;
  printf(" thingy 为 %d ， count 为 %d\n", thingy, count);
}

int main()
{
  // 变量
  int age = 20;
  // 全局变量
  const int LENGTH = 10;

  /* 我的第一个 C 程序 */
  printf("Hello, World! \n");
  printf("int 存储大小 : %lu \n", sizeof(int));
  printf("float 存储最大字节数 : %lu \n", sizeof(float));
  printf("精度值: %d\n", FLT_DIG);
  printf("当前年龄: %d\n", age);
  printf("当前: %c\n", UserName);
  printf("全局当前年龄: %d\n", UserAge);
  printf("LENGTH: %d\n", LENGTH);

  //  循环
  while (count--)
  {
    func1();
  }

  // extern 存储类
  s_count = 5;
  write_extern();

  // ? : 运算符(三元运算符)
  

  return 0;
}

// gcc -o main.cpp main.c support.c && ./main.cpp